#ifndef OS_LIB_H
#define OS_LIB_H

#include "os_types.h"
#include "os_cfg.h"
#include <stdarg.h>

void * os_memset (void * mem, int v, int count);
void * os_memcpy (void * dest, const void * src, int count);
int os_memcmp(const void* ptr1, const void* ptr2, size_t num);

size_t os_strlen(const char *str);
char * os_strncpy (char *dest, const char *src, int size);
char * os_strcpy (char *dest, const char *src);
int os_strcmp(const char *str1, const char *str2);
int os_strncmp(const char *str1, const char *str2, size_t num);
int os_strcasecmp(const char * str1, const char * str2);
int os_strncasecmp(const char *str1, const char *str2, size_t num);
char * os_strchr(const char *str, int c);
char * os_strstr(const char *s1, const char *s2);
char * os_strtok(char *str, const char *delim);
int os_getopt(const char * str, const char *opt_str);

int os_sprintf(char *str, const char *format, ...);
int os_snprintf(char *str, size_t size, const char *fmt, ...);
int os_vsnprintf(char *str, size_t size, const char *fmt, va_list args);

// todo:
void os_printf (const char * fmt, ...);
void os_putc (char c);

#endif
